home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / modes / yab.xml < prev    next >
Extensible Markup Language  |  2013-07-28  |  9KB  |  320 lines

  1. <?xml version="1.0"?>
  2.  
  3. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  4.  
  5. <!-- YAB (YABasic) 3/22/09 by Ben Dutcher -->
  6. <!-- roughly based on the grouping in the YAB documentation -->
  7. <MODE>
  8.     <PROPS>
  9.         <PROPERTY NAME="lineComment" VALUE="'" />
  10.         <PROPERTY NAME="contextInsensitive" VALUE="true" />
  11.     </PROPS>
  12.  
  13.     <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE" ESCAPE="\">
  14.         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  15.             <BEGIN>"</BEGIN>
  16.             <END>"</END>
  17.         </SPAN>
  18.  
  19.         <!-- YAB uses both the logical operator AND, and the bitwise function AND() -->
  20.         <!-- Doing something wrong here.  Goal is to mark the "and" of "and(a,b)" as a function,
  21.               but not mark the opening "(".  I'm using  SEQ instead, even though it does mark the "(".
  22.         -->
  23.         <!-- MARK_PREVIOUS AT_WORD_START="TRUE"
  24.    MATCH_TYPE="FUNCTION">"and("</MARK_PREVIOUS -->
  25.  
  26.         <!-- YAB has a large number of comment tags -->
  27.         <EOL_SPAN TYPE="COMMENT1">rem </EOL_SPAN>
  28.         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
  29.         <EOL_SPAN TYPE="COMMENT3" AT_LINE_START="TRUE">documentation</EOL_SPAN>
  30.         <EOL_SPAN TYPE="COMMENT3" AT_LINE_START="TRUE">docu</EOL_SPAN>
  31.         <EOL_SPAN TYPE="COMMENT3" AT_LINE_START="TRUE">doc</EOL_SPAN>
  32.         <EOL_SPAN TYPE="COMMENT4" AT_LINE_START="TRUE">#</EOL_SPAN>
  33.  
  34.         <!-- Comparison operators -->
  35.         <SEQ TYPE="OPERATOR"><</SEQ>
  36.         <SEQ TYPE="OPERATOR"><=</SEQ>
  37.         <SEQ TYPE="OPERATOR">>=</SEQ>
  38.         <SEQ TYPE="OPERATOR">></SEQ>
  39.         <SEQ TYPE="OPERATOR">=</SEQ>
  40.         <SEQ TYPE="OPERATOR"><></SEQ>
  41.  
  42.         <!-- Arithmetic operators -->
  43.         <SEQ TYPE="OPERATOR">+</SEQ>
  44.         <SEQ TYPE="OPERATOR">-</SEQ>
  45.         <SEQ TYPE="OPERATOR">*</SEQ>
  46.         <SEQ TYPE="OPERATOR">/</SEQ>
  47.         <SEQ TYPE="OPERATOR">**</SEQ>
  48.         <SEQ TYPE="OPERATOR">^</SEQ>
  49.         <!-- YAB uses both the logical operator AND, and the bitwise function AND() -->
  50.         <!-- Unfortuantely, this also marks the opening "(" -->
  51.         <SEQ TYPE="FUNCTION" AT_WORD_START="TRUE">and(</SEQ>
  52.  
  53.         <!-- Concatenation operators -->
  54.         <!-- strings -->
  55.         <SEQ TYPE="OPERATOR">&</SEQ>
  56.  
  57.         <!--        <SEQ TYPE="NULL">_</SEQ>-->
  58.         <!-- Instruction separator -->
  59.         <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"
  60.             AT_LINE_START="TRUE">:</MARK_PREVIOUS>
  61.  
  62.         <KEYWORDS>
  63.  
  64.             <!--  just testing! -->
  65.             <KEYWORD4>alotta</KEYWORD4>
  66.  
  67.             <!-- Conditional Statements -->
  68.             <KEYWORD1>case</KEYWORD1>
  69.             <KEYWORD1>default</KEYWORD1>
  70.             <KEYWORD1>else</KEYWORD1>
  71.             <KEYWORD1>elseif</KEYWORD1>
  72.             <KEYWORD1>elsif</KEYWORD1>
  73.             <KEYWORD1>endif</KEYWORD1>
  74.             <KEYWORD1>fi</KEYWORD1>
  75.             <KEYWORD1>if</KEYWORD1>
  76.             <KEYWORD1>switch</KEYWORD1>
  77.             <KEYWORD1>then</KEYWORD1>
  78.  
  79.             <!-- naviagation -->
  80.             <KEYWORD1>gosub</KEYWORD1>
  81.             <KEYWORD1>goto</KEYWORD1>
  82.             <KEYWORD1>label</KEYWORD1>
  83.             <KEYWORD1>return</KEYWORD1>
  84.  
  85.             <!-- special -->
  86.             <KEYWORD1>bind</KEYWORD1>
  87.             <KEYWORD1>compile</KEYWORD1>
  88.  
  89.             <!-- Loop Statements -->
  90.             <KEYWORD1>break</KEYWORD1>
  91.             <KEYWORD1>continue</KEYWORD1>
  92.             <KEYWORD1>do</KEYWORD1>
  93.             <KEYWORD1>each</KEYWORD1>
  94.             <KEYWORD1>for</KEYWORD1>
  95.             <KEYWORD1>in</KEYWORD1>
  96.             <KEYWORD1>loop</KEYWORD1>
  97.             <KEYWORD1>next</KEYWORD1>
  98.             <KEYWORD1>repeat</KEYWORD1>
  99.             <KEYWORD1>step</KEYWORD1>
  100.             <KEYWORD1>to</KEYWORD1>
  101.             <KEYWORD1>until</KEYWORD1>
  102.             <KEYWORD1>wend</KEYWORD1>
  103.             <KEYWORD1>while</KEYWORD1>
  104.  
  105.  
  106.             <!-- Closing, Exit Statements -->
  107.             <KEYWORD1>end</KEYWORD1>
  108.             <KEYWORD1>exit</KEYWORD1>
  109.  
  110.             <!-- control -->
  111.             <KEYWORD1>pause</KEYWORD1>
  112.             <KEYWORD1>sleep</KEYWORD1>
  113.             <KEYWORD1>wait</KEYWORD1>
  114.  
  115.             <!-- Methods, Functions, Class, Properties, Variables -->
  116.             <KEYWORD1>export</KEYWORD1>
  117.             <KEYWORD1>import</KEYWORD1>
  118.             <KEYWORD1>local</KEYWORD1>
  119.             <KEYWORD1>numparam</KEYWORD1>
  120.             <KEYWORD1>numparams</KEYWORD1>
  121.             <KEYWORD1>static</KEYWORD1>
  122.             <KEYWORD1>sub</KEYWORD1>
  123.             <KEYWORD1>subroutine</KEYWORD1>
  124.             <!-- end sub -->
  125.  
  126.  
  127.             <!-- Declaration -->
  128.             <KEYWORD1>const</KEYWORD1>
  129.             <KEYWORD1>dim</KEYWORD1>
  130.             <KEYWORD1>redim</KEYWORD1>
  131.  
  132.             <!-- Comments -->
  133.             <KEYWORD3>rem</KEYWORD3>
  134.             <KEYWORD2>documentation</KEYWORD2>
  135.             <KEYWORD3>docu$</KEYWORD3>
  136.             <KEYWORD2>docu</KEYWORD2>
  137.             <KEYWORD2>doc</KEYWORD2>
  138.  
  139.             <!-- Function Call - Dynamic Evaluation -->
  140.             <KEYWORD1>execute$</KEYWORD1>
  141.             <KEYWORD1>execute</KEYWORD1>
  142.             <KEYWORD1>system</KEYWORD1>
  143.             <KEYWORD1>system$</KEYWORD1>
  144.  
  145.             <!-- Miscellaneous -->
  146.             <KEYWORD1>beep</KEYWORD1>
  147.             <KEYWORD1>bell</KEYWORD1>
  148.             <KEYWORD1>clear</KEYWORD1>
  149.             <KEYWORD1>data</KEYWORD1>
  150.             <KEYWORD1>erase</KEYWORD1>
  151.             <KEYWORD1>error</KEYWORD1>
  152.             <KEYWORD1>explicit</KEYWORD1>
  153.             <KEYWORD1>getscreen$</KEYWORD1>
  154.             <KEYWORD1>goto</KEYWORD1>
  155.             <KEYWORD1>interrupt</KEYWORD1>
  156.             <KEYWORD1>on</KEYWORD1>
  157.             <KEYWORD1>option</KEYWORD1>
  158.             <KEYWORD1>putscreen</KEYWORD1>
  159.             <KEYWORD1>randomize</KEYWORD1>
  160.             <KEYWORD1>read</KEYWORD1>
  161.             <KEYWORD1>restore</KEYWORD1>
  162.             <KEYWORD1>resume</KEYWORD1>
  163.             <KEYWORD1>screen</KEYWORD1>
  164.             <!-- on interrupt -->
  165.             <!-- clear screen -->
  166.  
  167.  
  168.             <!-- I/O -->
  169.             <KEYWORD1>@</KEYWORD1>
  170.             <KEYWORD1>as</KEYWORD1>
  171.             <KEYWORD1>at</KEYWORD1>
  172.             <KEYWORD1>close</KEYWORD1>
  173.             <KEYWORD1>eof</KEYWORD1>
  174.             <KEYWORD1>inkey$</KEYWORD1>
  175.             <KEYWORD1>input</KEYWORD1>
  176.             <KEYWORD1>line</KEYWORD1>
  177.             <KEYWORD1>mouseb</KEYWORD1>
  178.             <KEYWORD1>mousemod</KEYWORD1>
  179.             <KEYWORD1>mousex</KEYWORD1>
  180.             <KEYWORD1>mousey</KEYWORD1>
  181.             <KEYWORD1>open</KEYWORD1>
  182.             <KEYWORD1>peek$</KEYWORD1>
  183.             <KEYWORD1>peek</KEYWORD1>
  184.             <KEYWORD1>poke</KEYWORD1>
  185.             <KEYWORD1>print</KEYWORD1>
  186.             <KEYWORD1>printer</KEYWORD1>
  187.             <KEYWORD1>reading</KEYWORD1>
  188.             <KEYWORD1>seek</KEYWORD1>
  189.             <KEYWORD1>tell</KEYWORD1>
  190.             <KEYWORD1>using</KEYWORD1>
  191.             <KEYWORD1>writing</KEYWORD1>
  192.             <!-- line input -->
  193.             <!-- for reading as, for writing as -->
  194.             <!-- open printer, close printer -->
  195.             <!-- print color, print colour, print reverse, print at, print @ -->
  196.  
  197.             <!-- draw -->
  198.             <KEYWORD1>backcolor</KEYWORD1>
  199.             <KEYWORD1>backcolour</KEYWORD1>
  200.             <KEYWORD1>box</KEYWORD1>
  201.             <KEYWORD1>circle</KEYWORD1>
  202.             <KEYWORD1>clear</KEYWORD1>
  203.             <KEYWORD1>color</KEYWORD1>
  204.             <KEYWORD1>colour</KEYWORD1>
  205.             <KEYWORD1>curve</KEYWORD1>
  206.             <KEYWORD1>dot</KEYWORD1>
  207.             <KEYWORD1>fill</KEYWORD1>
  208.             <KEYWORD1>getbit$</KEYWORD1>
  209.             <KEYWORD1>line</KEYWORD1>
  210.             <KEYWORD1>new</KEYWORD1>
  211.             <!-- open window, window origin, close curve, clear window, close window, new curve -->
  212.             <KEYWORD1>origin</KEYWORD1>
  213.             <KEYWORD1>putbit</KEYWORD1>
  214.             <KEYWORD1>rectangle</KEYWORD1>
  215.             <KEYWORD1>reverse</KEYWORD1>
  216.             <KEYWORD1>text</KEYWORD1>
  217.             <KEYWORD1>triangle</KEYWORD1>
  218.             <KEYWORD1>window</KEYWORD1>
  219.  
  220.             <!-- Operators -->
  221.  
  222.             <!-- Arithmetic operators -->
  223.             <OPERATOR>let</OPERATOR>
  224.             <OPERATOR>mod</OPERATOR>
  225.  
  226.             <!-- Logical operators -->
  227.             <KEYWORD3>and</KEYWORD3>
  228.             <KEYWORD3>eor</KEYWORD3>
  229.             <KEYWORD3>imp</KEYWORD3>
  230.             <KEYWORD3>not</KEYWORD3>
  231.             <KEYWORD3>or</KEYWORD3>
  232.             <KEYWORD3>xor</KEYWORD3>
  233.  
  234.             <!-- Datatypes Constants/Literals -->
  235.             <KEYWORD3>false</KEYWORD3>
  236.             <KEYWORD3>true</KEYWORD3>
  237.  
  238.             <!-- Miscellaneous  -->
  239.             <LITERAL2>euler</LITERAL2>
  240.             <LITERAL2>pi</LITERAL2>
  241.  
  242.             <!-- Built-in Functions -->
  243.             <!-- Array Handling -->
  244.             <KEYWORD2>arraydimension</KEYWORD2>
  245.             <KEYWORD2>arraydim</KEYWORD2>
  246.             <KEYWORD2>arraysize</KEYWORD2>
  247.  
  248.             <!-- Conversion Functions (Radix) -->
  249.             <FUNCTION>bin$</FUNCTION>
  250.             <FUNCTION>dec</FUNCTION>
  251.             <FUNCTION>hex$</FUNCTION>
  252.             <FUNCTION>str$</FUNCTION>
  253.  
  254.             <!-- Date/Time Functions -->
  255.             <FUNCTION>date$</FUNCTION>
  256.             <FUNCTION>time$</FUNCTION>
  257.  
  258.             <!-- Math Functions -->
  259.             <FUNCTION>abs</FUNCTION>
  260.             <FUNCTION>acos</FUNCTION>
  261.             <!-- FUNCTION>and(</FUNCTION  -->
  262.             <FUNCTION>asin</FUNCTION>
  263.             <FUNCTION>atan</FUNCTION>
  264.             <FUNCTION>bin$</FUNCTION>
  265.             <FUNCTION>cos</FUNCTION>
  266.             <FUNCTION>dec</FUNCTION>
  267.             <FUNCTION>eor</FUNCTION>
  268.             <FUNCTION>exp</FUNCTION>
  269.             <FUNCTION>fix</FUNCTION>
  270.             <FUNCTION>frac</FUNCTION>
  271.             <FUNCTION>int</FUNCTION>
  272.             <FUNCTION>log</FUNCTION>
  273.             <FUNCTION>max</FUNCTION>
  274.             <FUNCTION>min</FUNCTION>
  275.             <FUNCTION>ran</FUNCTION>
  276.             <FUNCTION>sgn</FUNCTION>
  277.             <FUNCTION>sig</FUNCTION>
  278.             <FUNCTION>sin</FUNCTION>
  279.             <FUNCTION>sqr</FUNCTION>
  280.             <FUNCTION>sqrt</FUNCTION>
  281.             <FUNCTION>tan</FUNCTION>
  282.  
  283.             <!-- Strings -->
  284.             <FUNCTION>asc</FUNCTION>
  285.             <FUNCTION>chr$</FUNCTION>
  286.             <FUNCTION>glob</FUNCTION>
  287.             <FUNCTION>hex$</FUNCTION>
  288.             <FUNCTION>instr</FUNCTION>
  289.             <FUNCTION>left$</FUNCTION>
  290.             <FUNCTION>len</FUNCTION>
  291.             <FUNCTION>lower$</FUNCTION>
  292.             <FUNCTION>ltrim$</FUNCTION>
  293.             <FUNCTION>mid$</FUNCTION>
  294.             <FUNCTION>right$</FUNCTION>
  295.             <FUNCTION>rinstr</FUNCTION>
  296.             <FUNCTION>rtrim$</FUNCTION>
  297.             <FUNCTION>split</FUNCTION>
  298.             <FUNCTION>token</FUNCTION>
  299.             <FUNCTION>trim$</FUNCTION>
  300.             <FUNCTION>upper$</FUNCTION>
  301.             <FUNCTION>val</FUNCTION>
  302.  
  303.             <!-- YABasic listed keywords that aren't described in the YABasic documentation:
  304.             bitblit$
  305.             bitblit
  306.             bitblt$
  307.             bitblt
  308.             filled
  309.             mousebutton
  310.             mousemodifier
  311.             rect
  312.             split$
  313.             token$
  314.             -->
  315.  
  316.  
  317.         </KEYWORDS>
  318.     </RULES>
  319. </MODE>
  320.